home *** CD-ROM | disk | FTP | other *** search
- 100 ;:;******** neuer bildschirm-editor:;
- 170 ;**** warten auf tastatur
- 175 kg01 jsr screnout
- 180 keyget lda anzkey:sta $cc:sta $0292
- 185 beq keyget:sei:lda $cf:beq kg02
- 190 lda $ce:ldx $0287:ldy #$00:sty $cf
- 195 jsr $ea13:kg02 jsr $e5b4:cmp #$83;shift run/stop:bne kg03
- 200 ldx #6:sei:stx anzkey:kg04 lda runstop-1,x:sta $0276,x:dex:bne kg04
- 205 keyget1 beq keyget
- 210 kg03 cmp #141:bcs kg01:cmp #13:beq kgcr
- 211 cmp #133:bcc kg01
- 215 tay:lda #32:bit flag:bne kg11:tya:jmp kg01
- 219 kg11 tya:sec:sbc #137:asl
- 220 bpl kg05:clc:adc #7:kg05 clc:adc #1
- 225 asl; * lenkey:sta flagff:asl:asl:adc flagff:tax:ldy #1:sei
- 230 kg08 lda keytext,x:beq kgkeyend:cmp #"'":bne k(NULL)1:lda #34:k(NULL)1 cmp #"_"
- 234 bne k(NULL)k:lda #13:k(NULL)k sta $0276,y:inx:iny:cpy #11;lenkey+1
- 235 bne kg08:kgkeyend dey
- 236 sty anzkey:cli:jmp keyget
- 240 kgcr ldy $d5:sty crflag
- 245 kg0a lda (czei),y:cmp #32:bne kg09
- 250 dey:bne kg0a:kg09 iny:sty $c8
- 255 ldy #0:sty $0292:sty spalte:sty $d4
- 260 lda $c9:bmi kg0c
- 265 kg0b ldx zeile:jsr $e6ed:cpx $c9
- 270 bne kg0c:lda $ca:sta spalte:cmp $c8
- 275 bcc kg0c:bcs nbas101
- 305 ;**** eingabe vom bildschirm
- 310 screnget tya:pha:txa:pha:lda crflag
- 315 bne kg0c:jmp keyget:kg0c ldy spalte:lda (czei),y
- 320 sta div:and #$3f:asl div:bit div
- 325 bpl nbas002:ora #$80:nbas002 bcc nbas003
- 330 ldx hkfl:bne nbas004:nbas003 bvs nbas004
- 335 ora #$40:nbas004 inc spalte:jsr $e684:cpy flagc8
- 340 bne nbas005:nbas101 lda #0:sta crflag:lda #13
- 345 ldx $99:cpx #3:beq nbas006:ldx $9a:cpx #3:beq nbas007
- 350 nbas006 jsr screnout:nbas007 lda #13
- 360 nbas005 sta div:pla:tax:pla:tay:lda div:cmp #$de
- 365 bne nbas008:lda #$ff:nbas008 clc:rts
- 400 ;**** einbindung ins os
- 410 nbsout pha:lda $9a:cmp #3:bne nbs1:pla:jmp screnout
- 415 nbs1 jmp $f1d5
- 420 nbsin lda $99:bne nbs2:lda $d3:sta $ca:lda $d6:sta $c9
- 425 jmp screnget:nbs2 cmp #3:beq nbs4:jmp $f173
- 430 nbs4 sta $d0:lda $d5:sta $c8:jmp screnget
- 999 ;**** zeilennr vom bildschirm holen(von oben)
- 1000 getznro lda $0288:sta flagff:lda #0:sta flagfe:ldy #0:ldx #0
- 1004 gzn01 lda $d9,x:bpl gzn02
- 1005 lda (flagfe),y:cmp #".":bne gzn01a:jsr mmgao:bcs gzn02:bcc gzmo
- 1008 gzn01a cmp #48:bcc gzn02:cmp #58:bcc gzn03
- 1010 gzn02 lda #40:clc:adc flagfe:sta flagfe:bcc gzn04:inc flagff
- 1015 gzn04 inx:cpx #25:bcc gzn01
- 1020 gznoend sec:gzmo lda #0:rts
- 1025 gzn03 sta $0100,y:iny:cpy #6:bcs gzn05a
- 1030 lda (flagfe),y:cmp #48:bcc gzn05a:cmp #58:bcc gzn03:gzn05a jsr gzn05
- 1031 jmp gzn08
- 1035 gzn05 ldx #0:stx int:stx int+1:gzn06 lda $0100,x
- 1040 sec:sbc #48:clc:adc int:sta int:bcc gzn07:inc int+1
- 1045 gzn07 dey:beq gzn08b:lda #10:jsr mult8:inx:bne gzn06:gzn08b clc:rts
- 1050 gzn08 ldy #1:lda ($2b),y:beq gznoend:iny:iny:lda int+1:cmp ($2b),y
- 1051 bcc gznoend:bne gzn08a:dey:lda ($2b),y:cmp int:bcs gznoend
- 1054 gzn08a lda $2b:ldx $2c
- 1055 gzn09 sta $5f:stx $60:ldy #0:lda ($5f),y:sta flagfe
- 1060 iny:lda ($5f),y:sta flagff
- 1065 gzn0c ldy #1:lda (flagfe),y:beq gzn0egef:iny:iny:lda (flagfe),y:cmp int+1
- 1070 bcc gzn0d:bne gzn0egef:dey:lda (flagfe),y:cmp int:bcc gzn0d:bcs gzn0egef
- 1080 gzn0d ldy #1:lda ($5f),y:tax:dey:lda ($5f),y:jmp gzn09
- 1090 gzn0egef ldy #2:lda ($5f),y:sta int:iny:lda ($5f),y:sta int+1:clc
- 1095 ldy #1:rts
- 1100 ;****znr vom scr holen (von unten)
- 1101 getznru lda $0288:clc:adc #3:sta flagff:lda #$c0:sta flagfe:ldy #0
- 1102 ldx #24:gza01 lda $d9,x:bpl gza02
- 1105 lda (flagfe),y:cmp #".":bne gza01a:jsr mmgau:bcs gza02:bcc gzmu
- 1108 gza01a cmp #48:bcc gza02:cmp #58:bcc gza03
- 1110 gza02 lda flagfe:sec:sbc #40:sta flagfe:bcs gza04:dec flagff
- 1115 gza04 dex:bpl gza01
- 1120 gznuend sec:gzmu lda #0:rts
- 1125 gza03 sta $0100,y:iny:cpy #6:bcs gza05a
- 1130 lda (flagfe),y:cmp #48:bcc gza05a:cmp #58:bcc gza03:gza05a jsr gzn05
- 1140 jsr $a613:bcc scr01nf
- 1141 ldy #1:lda ($5f),y:tax:dey:lda ($5f),y:sta $5f:stx $60
- 1142 scr01nf ldy #1:lda ($5f),y:beq gznuend
- 1143 iny:lda ($5f),y:tax:iny:lda ($5f),y
- 1144 clc:ldy #1:rts
- 1200 ;**** neue routine screenout
- 1205 screnout pha:sta div:txa:pha:tya:pha
- 1210 lda #16:bit flag:beq scrfx
- 1215 scrfa lda #8:bit flaga:bne scr103
- 1216 lda #32:bit flaga:beq scrf2
- 1217 lda div:and #$7f:cmp #" ":bcs scrf1:ins1 lda #255-32:jsr clrfla:jmp scrf2
- 1218 scrf1 ldy $d5:cpy #39:beq ins2:lda (czei),y:cmp #" ":bne ins1
- 1220 ins2 lda $d4:pha:lda #0:sta $d4:lda div:pha:lda #$94:jsr $e716
- 1221 pla:sta div:pla:sta $d4
- 1222 scrf2 bit $9d:bpl scr002
- 1225 lda $d4:ora $d8:bne scr002
- 1230 tsx:txa:clc:adc #12:tax:lda $0100,x:cmp #<nn032a+2:bne scr002
- 1235 lda $0101,x:cmp #>nn032a+2:beq scr001
- 1240 scr002 lda #4:bit flaga:beq scr002a:jmp scolist:scr103 jmp scr003
- 1241 scrfx jmp $e71d
- 1242 scr002a lda div:cmp #26:bne scr002b:lda #32:jsr setfla:bne escend
- 1245 scr002b lda div:cmp #3:beq escape
- 1250 cmp #12:bne esc1:ldy $d3:lda #" ":esc2 sta (czei),y:cpy $d5:beq escape
- 1255 iny:bne esc2:esc1 cmp #21:beq esc5:cmp #1:bne esc7
- 1260 ldx zeile:jsr $e6ed:ldy $d5:lda #" ":esc3 cmp (czei),y:bne esc4
- 1265 dey:bpl esc3:.byt $2c
- 1270 esc5 ldx #24:ldy #0:esc6 jsr $e50c
- 1275 escape lda #0:sta $d4:sta $c7:sta $d8:escend jmp $e6a8:scrxy2 bne scr002
- 1276 esc7 cmp #4:bne scrfx:lda #0:sta $d4:sta $d8:lda #"":jsr bsout
- 1277 lda #20:jsr bsout:jmp escape
- 1280 esc4 cpy $d5:beq esc6:iny:bne esc6
- 1294 scr001 lda div:cmp #"[145]":bne scr010
- 1295 lda #0:sta $c7:lda zeile:scrx02 bne scrxy2
- 1300 lda #8:jsr setfla:lda spalte:pha:lda $9a:pha:lda #3:sta $9a
- 1301 jsr getznro:php
- 1305 dec zeile:lda #0:sta spalte:jsr xscroll
- 1310 inc zeile:jsr $e56c:plp:bcs scr102
- 1311 bne scr100:jsr mprtzei:jmp scr102
- 1315 scr100 lda int+1:ldx int:jsr llist
- 1320 scr102 lda #255-8:jsr clrfla:pla:sta $9a
- 1325 pla:sta spalte:lda #0:sta zeile
- 1330 jsr $e56c:jmp escape
- 1335 scr010 cmp #"":bne scrx02:lda zeile:cmp #24:bne scrx02
- 1340 lda spalte:scr311 cmp #40:bcc scr310:sec:sbc #40:bcs scr311
- 1345 scr310 pha:lda $9a:pha:lda #3:sta $9a
- 1350 jsr getznru:php:pha:txa:pha:tya:pha:lda $da
- 1351 bmi scrrrr1:ldx #1:jsr $e9ff:ldx zeile:jsr $e9f0
- 1355 scrrrr1 pla:tay:pla:tax:lda #13:jsr $e716:pla
- 1357 plp:bcs scr011
- 1358 bne scrl:jsr mprtzei:jmp scr011
- 1359 scrl jsr llist
- 1360 scr011 pla:sta $9a:pla:ldy $f1:bmi scr312:clc:adc #40:scr312 sta spalte
- 1365 jmp escape
- 1370 scr003 lda spalte:cmp #39:bne scr105
- 1375 lda $f1:pha:jsr $e965:pla:bmi scrx3
- 1402 ldx #24:jsr $e9ff:jsr $e56c:bmi scrx3;absolut
- 1410 scr105 cmp #79:bne scrx3
- 1411 jsr xscroll:lda #79:sta $d5:scrx3 jmp scr002
- 1420 xscroll lda $f1:pha:jsr $e965:ldx zeile:inx:lda $d9,x
- 1421 ora #$80:sta $d9,x
- 1422 pla:bmi scrx2:ldx #24:jsr $e9ff
- 1423 ldx zeile:dex:jsr $e9f0
- 1424 scrx2 rts
- 1500 scolist lda div:and #$7f:cmp #32
- 1510 bcs scolend:lda $c7:pha:lda #12:sta $c7:lda div:clc:adc #64
- 1520 jsr $e716:pla:sta $c7:jmp $e6a8
- 1530 scolend lda div:jmp $e71d
- 2000 ;**** unterroutinen
- 2010 mult8 pha
- 2012 lda int:sta flagfe:lda int+1:sta flagff:lda #0:sta int:sta int+1:pla
- 2015 mult01 lsr:bcs mult03:beq multend:bcc mult02
- 2016 mult03 pha:lda int:clc:adc flagfe:sta int:lda int+1:adc flagff:sta int+1
- 2017 pla
- 2020 mult02 asl flagfe:rol flagff:jmp mult01
- 2045 multend rts
-